/*
 * @Author: Warren
 * @Date: 2025-02-26 09:02:29
 * @LastEditors: Warren
 * @LastEditTime: 2025-07-23 21:54:40
 * @FilePath: /nest-web/src/db/dbConnect.ts
 * @Description: 数据库连接 mysql
 */
import { TypeOrmModule } from '@nestjs/typeorm'
import * as path from 'path';
import * as glob from 'glob';

// 自动加载 `entities` 目录下的所有 `.entity` 文件
const entities = glob.sync(path.join(__dirname, '../entities/**/*.entity{.ts,.js}'));
export const dbConnect = () => {
    return TypeOrmModule.forRoot({
        type: 'mysql',
        host: 'localhost',
        port: 3306,
        username: 'root',
        // password: 'mysql123456', // company
        password: '12345678', // self
        database: 'learn',
        /* 也可以在每个模块单独引入 设置为  autoLoadEntities: true 这种方式容易报错 */
        entities: entities,
        /* 
            数据库表与实体  开发环境可以使用
            可以根据实体初始化创建数据库表
            表有数据后，更新将受限制（修改某些列类型（如从 VARCHAR 改为 INT））
            生产环境禁用，使用 TypeORM 的迁移功能来管理数据库结构的变更 
        */
        synchronize: true,
        //  dropSchema: true, // 危险！会删除所有数据，仅用于开发，大部分情况 synchronize 可适用
    })
} 